Next: Shell Options, Previous: Shell History, Up: Shell [Contents][Index]
Shell mode keeps track of ‘cd’, ‘pushd’ and ‘popd’ commands given to the subshell, in order to keep the Shell buffer’s default directory (see File Names) the same as the shell’s working directory. It recognizes these commands by examining lines of input that you send.
If you use aliases for these commands, you can tell Emacs to
recognize them also, by setting the variables
shell-pushd-regexp, shell-popd-regexp,
and shell-cd-regexp to the appropriate regular
expressions (see Regexps). For
example, if shell-pushd-regexp matches the beginning
of a shell command line, that line is regarded as a
pushd command. These commands are recognized only at
the beginning of a shell command line.
If Emacs gets confused about changes in the working directory of the subshell, type M-x dirs. This command asks the shell for its working directory and updates the default directory accordingly. It works for shells that support the most common command syntax, but may not work for unusual shells.
You can also use Dirtrack mode, a buffer-local minor mode that
implements an alternative method of tracking the shell’s
working directory. To use this method, your shell prompt must
contain the working directory at all times, and you must supply a
regular expression for recognizing which part of the prompt
contains the working directory; see the documentation of the
variable dirtrack-list for details. To use Dirtrack
mode, type M-x dirtrack-mode in the Shell buffer, or
add dirtrack-mode to shell-mode-hook
(see Hooks).
Next: Shell Options, Previous: Shell History, Up: Shell [Contents][Index]